#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <qfiledialog.h>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    model=new QFileSystemModel(this);//делаем модель для QTreeView
    model->setRootPath("");//выбираем корневую папку
    QStringList filter;//переменная для фильтра
        filter << "*.txt";//загоняем туда разширение
   //
     model->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs |QDir::Drives);//разрешаем видеть папки и диски;не показывать точки
    //listmodel->setFilter(QDir::NoDotAndDotDot | QDir::Files);
    //listmodel->setNameFilters(filter);//ставим фильтр -crash
   ui->treepath->setModel(model);//устанавливаем модели
   ui->listpath->setModel(listmodel);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_treepath_clicked(const QModelIndex &index)//тут у нас есть индекс
{

    QString sPath = model->fileInfo(index).absoluteFilePath();
           ui->listpath->setRootIndex(listmodel->setRootPath(sPath));
           ui->pathEdit->setText(sPath);
    }

void MainWindow::on_open_button_clicked()
{

    QString filename= QFileDialog::getOpenFileName(this,tr("Open txt file"), "", tr("text Files (*.txt)"));//открываем окно "открыть",запрашиваем файл
     ui->pathEdit->setText(filename);//сначала - самое простое,забиваем полный нуть в строчку для пути
     ui->treepath->scrollTo(model->index(filename));//показываем папку в QTreeView
     ui->listpath->setRootIndex(model->index(filename).parent());//и в qlistview
     QFile file(filename);//укажем файл
         file.open(QIODevice::ReadWrite| QIODevice::Text);//откроем файл
         QTextStream stream(&file);//забьем его содержимое в QTextStream
                 QString str = stream.readAll();//считаем все в строку
                 ui->textEdit->setText(str);//и забьем все это в qtextbrowser
                 file.close();//бережем память

}

void MainWindow::on_listpath_doubleClicked(const QModelIndex &index)
{

    QString txtPath = listmodel->fileInfo(index).absoluteFilePath();//из индекса получаем полный путь
    ui->pathEdit->setText(txtPath);//и втыкаем его в строку для патча
    QFile file(txtPath);//укажем файл
    file.open(QIODevice::ReadWrite| QIODevice::Text);//откроем файл
    QTextStream stream(&file);//забьем его содержимое в QTextStream
            QString str = stream.readAll();//считаем все в строку
            ui->textEdit->setText(str);//и забьем все это в qtextbrowser
            file.close();//бережем память




}
